#include "Pruebas.h"
#include "preprocesamiento.h"
#include "DetectorRegiones.h"
#include <iostream>
#include <fstream>

Pruebas::Pruebas(void)
{
}
Pruebas::~Pruebas(){
}

void Pruebas::probarCanny(){
	int cannyThresholdLow = 15;
	int cannyThresholdHigh = 140;
	Mat imagenPreprocesada;
	stringstream ruta;
	ofstream result;
	result.open("salida.txt");
	DetectorRegiones detector;
	int exitos[6][6];
	for (int i = 0; i < 6;i++)
		for (int j = 0; j < 6;j++)
			exitos[i][j] = 0;
	detector.lineLength = 40;
	detector.deltaThresholdHough = 35;
	Mat imagenes [60];
	Mat imagenesGris [60];
	for (int k = 0; k < 60; k++){
		stringstream ruta;
		ruta << "C:\\Users\\Shadow\\Desktop\\opencvProyects\\Thesis\\input\\jpg\\";
		ruta << (k+1) << ".jpg";
		imagenes[k] = imread(ruta.str(),CV_LOAD_IMAGE_COLOR);
		imagenesGris[k] = imread(ruta.str(),CV_LOAD_IMAGE_GRAYSCALE);
	}
	for (int c = 0; c < 60; c++){
		cout << "Probando con " << (c+1) << ".jpg" << endl;
		detector.input_image_color = imagenes[c];
		Mat imagen = imagenesGris[c];
		int indI = 0;
		for (int i = 55; i >= 5; i-=10){
			int indJ = 0;
			for (int j = 140; j <= 240; j+=20){
				preprocesar(imagen,imagenPreprocesada,i,j);
				detector.processedImage = imagenPreprocesada;
				detector.run(false);
				if (detector.detectado){
					exitos[(i-5)/10][(j-140)/20]+=1;
					detector.detectado = false;
				}
				indJ++;
				cout << "Min threshold:" << i << " Max threshold:" << j << endl;
			}
			indI++;
		}
	}
	for (int i = 0; i < 6; i++){
		for (int j = 0; j < 6; j++){
			result << exitos[i][j] << "\t";
		}
		result << endl;
	}
	result.close();
}